package it.apiconsulting.editT.controller;


import it.apiconsulting.editT.model.Giocatore;
import it.apiconsulting.editT.util.HibernateUtil;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.classic.Session;


public class GiocatoreManager extends HibernateUtil {
	
	public Giocatore add(Giocatore giocatore) {
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		session.save(giocatore);
		session.getTransaction().commit();
		return giocatore;
	}
	public Giocatore delete(Long id) {
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		Giocatore giocatore = (Giocatore) session.load(Giocatore.class, id);
		if(null != giocatore) {
			session.delete(giocatore);
		}
		session.getTransaction().commit();
		return giocatore;
	}

	public List<Giocatore> list() {
		
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		List<Giocatore> giocatori = null;
		try {
			
			Query query = session.createQuery("from Giocatore");
			if ((List<Giocatore>)query.list() != null) {
			
				giocatori = (List<Giocatore>)query.list();
			}
		} catch (HibernateException e) {
			e.printStackTrace();
			session.getTransaction().rollback();
		}
		session.getTransaction().commit();
		return giocatori;
	}
}
